package persi.futbol;

import java.util.HashSet;
import java.util.Set;

import persi.entities.Entidad;
import persi.futbol.formacion.Formacion;
import persi.futbol.interfaces.Nombrable;
import persi.futbol.jugador.Jugador;

public class Equipo extends Entidad implements Nombrable {
	public static final String NOMBRE = "nombre";
	/**
	 * Delega en el técnico para armar el equipo
	 */

	private String nombre;
	private Tecnico tecnico;
	private Set<Jugador> jugadores = new HashSet<Jugador>();

	public Equipo() {

	}

	public Equipo(final String nombre, final Tecnico tecnico,
			final Set<Jugador> jugadores) {
		super();
		this.nombre = nombre;
		this.tecnico = tecnico;
		this.jugadores = jugadores;
	}

	public void agregarJugador(final Jugador jugador) {
		this.getJugadores().add(jugador);
	}

	public Formacion armarFormacion() {
		return tecnico.armarFormacion(this);
	}

	public Formacion getFormacion() {
		return this.getTecnico().armarFormacion(this);
	}

	public Set<Jugador> getJugadores() {
		return jugadores;
	}

	@Override
	public String getNombre() {
		return nombre;
	}

	public Tecnico getTecnico() {
		return tecnico;
	}

	public void setJugadores(final Set<Jugador> jugadores) {
		this.jugadores = jugadores;
	}

	public void setNombre(final String nombre) {
		this.nombre = nombre;
	}

	public void setTecnico(final Tecnico tecnico) {
		this.tecnico = tecnico;
	}
}
